import random

from sqlalchemy.orm import Session
from sqlalchemy import func
from typing import List

from common.sqlalchemy_db import SqlalchemyX
from modules.mod import RandomAvatars


class RandomAvatarsService:
    def __init__(self):
        """
        初始化服务类，注入随机头像仓库。
        :param random_avatars_repository: 数据库会话对象
        """
        self.random_avatars_repository = SqlalchemyX.db_session()

    async def get_random_avatar_url(self) -> str:
        """
        获取一张随机图片链接地址。
        :return: 随机头像的 URL
        """
        # 获取随机头像总数
        count = self.random_avatars_repository.query(func.count(RandomAvatars.random_avatar_id)).scalar()
        random_num = int(random.random() * count + 1)
        # 查询随机头像记录
        avatar_mes = self.random_avatars_repository.query(RandomAvatars).offset(random_num-1).limit(1).first()
        # 返回随机头像的 URL
        return avatar_mes.random_avatar_url 
